Various methods for circuit design are commonly used. Examples of these methods include hardware description languages, schematic methods, and table-based methods. Schematic methods are preferred, because they allow for a graphical view of circuits during the design process and therefore convey a clearer meaning of the design than other methods. For large circuit designs, computer-aided design (CAD) programs divide a circuit schematic into pages, with each page representing a portion of the circuit being designed. The pages which represent a CAD drawing are often stored in a CAD database. Due to the division of a drawing into pages, the pages may not correspond to physical, logical, or functional subsystems of the circuit. Such division may also prohibit a global view of the entire architecture of the circuit.
As circuits have become more complex, schematic circuit design has become increasingly more difficult. It may be necessary to store a complex circuit design in hundreds of pages in order to encompass the entire circuit. This may distribute circuit functionality across multiple pages, requiring users to traverse multiple pages to, for example, verify the connectivity between components in the circuit. Such processes may be error-prone, for example if a user incorrectly traces a connection while traversing multiple pages. As more functionality is included in a chip, there is a substantial increase in pin count and design complexity. This may result in even a single component being spread across multiple pages.
Often when creating a new chip or circuit design, a user will begin by copying an existing design and introducing modifications. However, schematic editors generally only allow copying operations at the page level. Therefore users may have to add or delete elements by hand after an initial design is created. Schematic editors also generally do not allow copying or other operations to be performed on a subset of elements based on their functionality. Therefore when an entire page is copied and some functionality present in the original page needs to be removed from or reconstructed in the copy, the chance of errors is greatly increased.
Similar problems arise when a user wishes to simulate an element of a CAD drawing. Often a user will wish only to simulate a subset of the entire schematic, as simulation of the entire design may be too complex to be useful or feasible. A user may create a copy of the entire schematic, and then remove elements the user wants to exclude from the simulation prior to creating a simulation. Such simulations may therefore be error-prone as discussed above. There is also a possibility that the process of copying and modifying the schematic will result in a simulation that does not accurately reflect the original system.
In a typical CAD system, shown in FIG. 1, a schematic editor 120 is used to display data from a CAD database 110 on a display 130. The schematic editor 120 may determine which elements of the CAD database 110 will be used based on user input 140. The schematic editor 120 includes a graphics rendering engine 121 and an input controller 122. The graphics rendering engine 121 may translate information from the CAD database 110 to a display 130 for rendering schematics. Elements stored in the CAD database 110 typically are organized on pages, as previously described. The input controller 122 captures user input 140 and allows manipulation of data on the display 130. Generally a graphical interface will display only a single page at a time, requiring uses to view multiple pages in order to perform complex operations. Therefore the system described with respect to FIG. 1 may not be well-suited to manipulate large, complex circuits or chips as described above. Due to the use of page-based schematics to store schematics, a user may be required to traverse multiple pages in order to view or manipulate a single element or subsystem.
FIGS. 2-5 show a user interface in a typical CAD program. In FIG. 2, an example of a system schematic is shown within a single display. However, it is clear that a user is unable to discern specific objects or connections in this view. FIG. 3 shows a “zoomed” view of a particular signal in the system shown in FIG. 2. A user is able to see specific structures, connections or signals, but cannot see, for example, the entire structure of a subsystem. For example, signal 310 may extend across multiple pages, windows, or other display segment. This may require the user to view or scroll through multiple pages in order to view the entire subsystem. FIGS. 4 and 5 show additional views of signal 310 as a user views multiple pages. FIGS. 4 and 5 may each represent a single page as displayed by a typical CAD application. Each page may include multiple signals or other objects, and the objects may also extend across multiple pages. This may require a user to traverse many pages in order to view, modify, or verify a single element. For example, in FIGS. 3-5 a user must view three pages in order to trace the connectivity of signal 310.